package notifications

//模板消息推送参数
type TemplateMsg struct {
	ToUser      string        `json:"touser"`      //接收者的OpenID
	TemplateID  string        `json:"template_id"` //模板消息ID
	FormID      string        `json:"form_id"`
	URL         string        `json:"url"`         //点击后跳转链接
	MiniProgram MiniProgram   `json:"miniprogram"` //点击跳转小程序
	Data        *TemplateData `json:"data"`
}

//跳转微信小程序参数
type MiniProgram struct {
	AppID    string `json:"appid"`
	PagePath string `json:"pagepath"`
}

//模板参数
type TemplateData struct {
	First    KeyWordData `json:"first,omitempty"`
	Keyword1 KeyWordData `json:"keyword1,omitempty"`
	Keyword2 KeyWordData `json:"keyword2,omitempty"`
	Keyword3 KeyWordData `json:"keyword3,omitempty"`
	Keyword4 KeyWordData `json:"keyword4,omitempty"`
	Keyword5 KeyWordData `json:"keyword5,omitempty"`
	Remark   KeyWordData `json:"remark,omitempty"`
}

//模板值
type KeyWordData struct {
	Value string `json:"value"`
	Color string `json:"color,omitempty"`
}

type ResSendTemplate struct {
	Errcode int    `json:"errcode"`
	Errmsg  string `json:"errmsg"`
	MsgId   int    `json:"msgid"`
}

type ResCreateGroupChat struct {
	Errcode int    `json:"errcode"`
	Errmsg  string `json:"errmsg"`
	ChatId  string `json:"chatid"`
}

//微信企业个人应用消息推送
type WeChatGroupMsg struct {
	ToUser                 string                 `json:"touser"` //接收者的OpenID
	MsgType                string                 `json:"msgtype"`
	AgentId                int                    `json:"agentid"`
	WeChatGroupMsgSendText WeChatGroupMsgSendText `json:"text"`
}

//微信企业群机器人消息推送
type WeChatGroupRobotMsg struct {
	MsgType                     string                      `json:"msgtype"`
	WeChatGroupRobotMsgSendText WeChatGroupRobotMsgSendText `json:"markdown"`
}

type WeChatGroupRobotMsgSendText struct {
	Content             string   `json:"content"`
	MentionedMobileList []string `json:"mentioned_mobile_list"`
}

//微信企业群应用消息推送
type WeChatGroupOfMsg struct {
	ChatId                 string                 `json:"chatid"` //接收者的OpenID
	MsgType                string                 `json:"msgtype"`
	WeChatGroupMsgSendText WeChatGroupMsgSendText `json:"text"`
}

type WeChatCreateGroupChatParam struct {
	Name     string   `json:"name"`
	Owner    string   `json:"owner"`
	UserList []string `json:"userlist"`
	ChatId   string   `json:"chatid"`
}

type WeChatGroupMsgSendText struct {
	Content string `json:"content"`
}

//钉钉工作通知消息
type DingTalkMsg struct {
	AgentId    int    `json:"agent_id"`
	UserIdList string `json:"userid_list"`

	//DingTalkMsgText DingTalkMsgText `json:"msg"`
	DingTalkMsgText DingTalkMsgMarkDown `json:"msg"`
}

type DingTalkMsgMarkDown struct {
	MsgType         string                     `json:"msgtype"`
	DingTalkMsgText DingTalkGroupRobotTextSend `json:"markdown"`
}

type DingTalkMsgText struct {
	MsgType string                 `json:"msgtype"`
	Text    WeChatGroupMsgSendText `json:"text"`
}

type DingTalkChatCreateParam struct {
	Name       string   `json:"name"`
	Owner      string   `json:"owner"`
	UserIdList []string `json:"useridlist"`
}

type DingTalkChatCreateResp struct {
	OpenConversationId string `json:"openConversationId"`
	ChatId             string `json:"chatid"`
	ConversationTag    int    `json:"conversationTag"`
	Errcode            int    `json:"errcode"`
	Errmsg             string `json:"errmsg"`
}

type DingTalkGroupMsg struct {
	ChatId          string          `json:"chatid"`
	DingTalkMsgText DingTalkMsgText `json:"msg"`
}

//根据手机号获取userid
type DingTalkGetUserId struct {
	Errcode       int           `json:"errcode"`
	Errmsg        string        `json:"errmsg"`
	RequestId     string        `json:"request_id"`
	DinTalkUserId DinTalkUserId `json:"result"`
}

type DinTalkUserId struct {
	UserId string `json:"userid"`
}

//钉钉群机器人通知推送
type DingTalkGroupRobotMsgSend struct {
	MsgType string `json:"msgtype"`
	//Text    WeChatGroupMsgSendText   `json:"text"`
	Text DingTalkGroupRobotTextSend `json:"markdown"`
	At   DingTalkGroupRobotSendAt   `json:"at"`
}

//机器人Markdown格式数据
type DingTalkGroupRobotTextSend struct {
	Title   string `json:"title"`
	Content string `json:"text"`
}

//钉钉群机器人@某人
type DingTalkGroupRobotSendAt struct {
	AtMobiles []string `json:"atMobiles"`
}

//企业微信根据手机号获取UserId
type WeChatGetUserId struct {
	UserId  string `json:"userid"`
	Errcode int    `json:"errcode"`
	Errmsg  string `json:"errmsg"`
}
